/*
 * 外观模式是比较简单的模式。它的目的也是为了简单。什么意思呢？举个例子吧。
 *
 * 以前，我们逛街的时候吃要到小吃一条街，购物要到购物一条街，看书、看电影要到文化一条街。
 *
 * 那么有没有这样的地方，既可以吃喝玩乐，同时相互又靠得比较近呢。其实，这就是悠闲广场，
 *
 * 遍布全国的万达广场就是干了这么一件事。
 *
 * 首先，我们原来是怎么做的。
 */

typedef struct foodsteet
{
	void (*eat)();
}foodstreet;

void eat()
{
	printf("eat here!\n");
}

typedef struct shopstreet
{
	void (*buy)();
}shopstreet;

void buy()
{
	printf("buy here!\n");
}

typedef struct bookstreet
{
	void (*read)();
}bookstreet;

void read()
{
	printf("read here\n");
}


/*
 * 下面，我们就要在一个plaza里面完成所有的项目，怎么办呢？ 
 */
typedef struct plaza
{
	foodstreet * pfoodstreet;
	shopstreet * pshopstreet;
	bookstreet * pbookstreet;

	void (*play)(struct plaza * plaza);
}plaza;

void play(struct plaza * plaza)
{
	assert(NULL != plaza);

	plaza->pfoodstreet->eat();
	plaza->pshopstreet->buy();
	plaza->pbookstreet->read();
}


